/*
 *
 *  Copyright (C) 2007-2020 SimplyCore, LLC
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 *
 */

#ifdef _USBD_ENABLE_STUB_
#include "usbd.h"
#include "loader.h"
static ssize_t IIIIlIlll(void*,const char __user*,size_t);static ssize_t 
llIllIlII(void*,char __user*,size_t);static long IlIIllIlI(void*,unsigned int,
unsigned long);
#ifdef CONFIG_COMPAT
static long IIlIlIIlI(void*,unsigned int,unsigned long);
#endif
static int IIIIlllIl(void*,int);static int lIIIlIllI(void*,int);static unsigned 
int IIllIllIl(void*,struct file*,poll_table*lIIllI);static int IIIlIllIl(struct 
IIIlll*lllll,const char __user*IllIl);static int llIlllIll(struct IIIlll*lllll,
const struct IllIlIlll __user*ioctl);static int IllllIIII(struct IIIlll*lllll,
struct IlIIlIIII __user*ioctl);static int lllllllII(struct IIIlll*lllll,const 
struct IlIIIIIlI __user*ioctl);static int IlllIlIll(struct IIIlll*lllll,const 
struct IllIIlIIl __user*ioctl);static int IIIIlIIIl(struct IIIlll*lllll,const 
struct lllIllIlI __user*ioctl);static int IlIllIIIl(struct IIIlll*lllll,const 
struct lIIIIlIll __user*ioctl);static int lllIIlIII(struct IIIlll*lllll,const 
char __user*IllIl);static int lIIIIIIll(struct IIIlll*lllll,const struct 
IIlIllIIl __user*ioctl);struct IIIllllI lIIlIlIII[]={{"\x74\x79\x70\x65",
"\x6c\x6f\x61\x64\x65\x72",NULL},{NULL,NULL,NULL}};struct IIIlll*lIlIlIllI(void)
{struct IIIlll*lllll;lllll=IlllIIl(sizeof(*lllll),GFP_KERNEL);if(lllll){
mutex_init(&lllll->mutex);lllll->context=lllll;lllll->IIllll=-
(0x1f93+1196-0x243e);lllll->ops.open=IIIIlllIl;lllll->ops.release=lIIIlIllI;
lllll->ops.unlocked_ioctl=IlIIllIlI;
#ifdef CONFIG_COMPAT
lllll->ops.compat_ioctl=IIlIlIIlI;
#endif
lllll->ops.read=llIllIlII;lllll->ops.write=IIIIlIlll;lllll->ops.poll=IIllIllIl;
lllll->IIllllIl=lIIlIlIII;if(IllllIlI(lllll,(0xab2+2977-0x1653),
(0x2114+22-0x212a))<(0x11a1+4435-0x22f4)){lIlIll(lllll);lllll=NULL;}}return 
lllll;}void IIllllllI(struct IIIlll*lllll){if(lllll){lllIllII(lllll);lIlIll(
lllll);}}static ssize_t llIllIlII(void*context,char __user*IllIl,size_t llIlI){
ssize_t IlIlI=(0x4c2+5257-0x194b);IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x72\x65\x61\x64\x3a\x20\x62\x75\x66\x20\x69\x73\x20\x30\x78\x25\x70\x2c\x20\x72\x65\x71\x75\x65\x73\x74\x65\x64\x20\x25\x6c\x75\x20\x62\x79\x74\x65\x73" "\n"
,IllIl,(unsigned long)llIlI);return IlIlI;}static ssize_t IIIIlIlll(void*context
,const char __user*IllIl,size_t llIlI){
ssize_t IlIlI=llIlI;IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x77\x72\x69\x74\x65\x3a\x20\x62\x75\x66\x20\x69\x73\x20\x30\x78\x25\x70\x2c\x20\x72\x65\x71\x75\x65\x73\x74\x65\x64\x20\x25\x6c\x75\x20\x62\x79\x74\x65\x73" "\n"
,IllIl,(unsigned long)llIlI);return IlIlI;}static long IIllIIlII(void*context,
unsigned int lIIIIl,void __user*IlIIII){struct IIIlll*lllll=context;ssize_t 
IlIlI=(0x136+2134-0x98c);IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x64\x6f\x5f\x69\x6f\x63\x74\x6c\x3a\x20\x2b\x2b\x20\x63\x6d\x64\x3d\x25\x64\x20\x61\x72\x67\x3d\x30\x78\x25\x70" "\n"
,lIIIIl,IlIIII);switch(lIIIIl){case lIIIIIllll:IlIlI=IIIlIllIl(lllll,IlIIII);
break;case IlIllIllI:IlIlI=llIlllIll(lllll,IlIIII);break;case IlllllllI:IlIlI=
IllllIIII(lllll,IlIIII);break;case IIlllIIIl:IlIlI=lllllllII(lllll,IlIIII);break
;case IIlIIIIll:IlIlI=IlllIlIll(lllll,IlIIII);break;case IIIlllllI:IlIlI=
IIIIlIIIl(lllll,IlIIII);break;case IllllIIlI:IlIlI=IlIllIIIl(lllll,IlIIII);break
;
#if (0x1258+1612-0x18a4)
case IIIllIIIII:IlIlI=lllIlIIIl(lllll,IlIIII);break;
#endif
case lIlIlIlIl:IlIlI=lllIIlIII(lllll,IlIIII);break;case lllIIlIIl:IlIlI=
lIIIIIIll(lllll,IlIIII);break;default:IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x64\x6f\x5f\x69\x6f\x63\x74\x6c\x3a\x20\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x69\x6f\x63\x74\x6c" "\n"
);IlIlI=-EINVAL;break;}IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x64\x6f\x5f\x69\x6f\x63\x74\x6c\x3a\x20\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x6c\x75" "\n"
,(unsigned long)IlIlI);return IlIlI;}static long IlIIllIlI(void*context,unsigned
 int lIIIIl,unsigned long IlIIII){IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x69\x6f\x63\x74\x6c" "\n");
return IIllIIlII(context,lIIIIl,(void __user*)IlIIII);}
#ifdef CONFIG_COMPAT
static long IIlIlIIlI(void*context,unsigned int lIIIIl,unsigned long IlIIII){
IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x63\x6f\x6d\x70\x61\x74\x5f\x69\x6f\x63\x74\x6c" "\n"
);return IIllIIlII(context,lIIIIl,compat_ptr(IlIIII));}
#endif


static int IIIIlllIl(void*context,int IIlllII){
IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x6f\x70\x65\x6e\x20\x25\x64" "\n"
,IIlllII);
return(0x1b7+7937-0x20b8);}

static int lIIIlIllI(void*context,int IIlllII){
IlllI(
"\x75\x73\x62\x64\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x72\x65\x6c\x65\x61\x73\x65\x20\x25\x64" "\n"
,IIlllII);if(IIlllII==(0x1c94+198-0x1d5a)){
IIlIIlII();}return(0x180c+1216-0x1ccc);}static unsigned int IIllIllIl(void*
context,struct file*lIlllI,poll_table*lIIllI){
return(POLLOUT|POLLWRNORM);}static int IIIlIllIl(struct IIIlll*lllll,const char 
__user*IllIl){int IlIlI=(0x10a5+1673-0x172e);const char __user*lIIIllII;struct 
list_head lIlIllII;struct lIllllIII IlllllI;lllII lllIlI;lIIIl("\x2b\x2b" "\n");
INIT_LIST_HEAD(&lIlIllII);if(copy_from_user(&IlllllI,IllIl,sizeof(IlllllI))){
return-EFAULT;}lIIIllII=IllIl+IlllllI.lIIlII.IIlllIl;if(IllIl+sizeof(IlllllI)>
lIIIllII){return-EINVAL;}IllIl+=sizeof(IlllllI);lIIIl(
"\x63\x6f\x75\x6e\x74\x3d\x25\x64" "\n",IlllllI.lIIlIIII);for(lllIlI=
(0xc49+6202-0x2483);lllIlI<IlllllI.lIIlIIII;lllIlI++){size_t IlllIlll;size_t 
lIlIlllI;struct llllllII IIIIl;struct IllIlIII*IIIIII;if(IllIl+sizeof(IIIIl)>
lIIIllII){IlIlI=-EINVAL;break;}if(copy_from_user(&IIIIl,IllIl,sizeof(IIIIl))){
IlIlI=-EFAULT;break;}if((IIIIl.IIIlIIl&IlIIlIllI)&&(IIIIl.IIIlIIl&IIIlIlIlI)){
IlIlI=-EINVAL;break;}if((IIIIl.IIIlIIl&IlIlllIlI)&&IIIIl.IIlIIIl<=
(0x454+2730-0xefe)){
IlIlI=-EINVAL;break;}if((IIIIl.IIIlIIl&IIIlIIllI)&&IIIIl.IIIlllIl<=
(0x694+284-0x7b0)){
IlIlI=-EINVAL;break;}if((IIIIl.IIIlIIl&lIIllIIll)&&IIIIl.IlllIlIl<=
(0x1a81+2943-0x2600)){
IlIlI=-EINVAL;break;}lIlIlllI=sizeof(struct llllllII)+IIIIl.IIlIIIl+IIIIl.
IIIlllIl+IIIIl.IlllIlIl;IlllIlll=sizeof(struct IllIlIII)-sizeof(struct llllllII)
+lIlIlllI;if(IllIl+lIlIlllI>lIIIllII){IlIlI=-EINVAL;break;}IIIIII=IIIllII(
IlllIlll,GFP_KERNEL);if(IIIIII==NULL){IlIlI=-ENOMEM;break;}if(copy_from_user(&
IIIIII->IIIIl,IllIl,lIlIlllI)){lIlIll(IIIIII);IlIlI=-EFAULT;break;}if((IIIIl.
IIIlIIl&IlIlllIlI)&&*((char*)(&IIIIII->IIIIl+(0x9f5+478-0xbd2))+IIIIl.IIlIIIl-
(0x1802+992-0x1be1))!='\0'){
lIlIll(IIIIII);IlIlI=-EINVAL;break;}if((IIIIl.IIIlIIl&IIIlIIllI)&&*((char*)(&
IIIIII->IIIIl+(0xdb2+5471-0x2310))+IIIIl.IIlIIIl+IIIIl.IIIlllIl-
(0x52d+2711-0xfc3))!='\0'){
lIlIll(IIIIII);IlIlI=-EINVAL;break;}if((IIIIl.IIIlIIl&lIIllIIll)&&*((char*)(&
IIIIII->IIIIl+(0x4d3+5879-0x1bc9))+IIIIl.IIlIIIl+IIIIl.IIIlllIl+IIIIl.IlllIlIl-
(0x664+1204-0xb17))!='\0'){
lIlIll(IIIIII);IlIlI=-EINVAL;break;}lIIIl(
"\x56\x3d\x25\x30\x34\x58\x20\x50\x3d\x25\x30\x34\x58\x20\x52\x3d\x25\x30\x34\x58\x20\x43\x3d\x25\x30\x32\x58\x20\x53\x3d\x25\x30\x32\x58\x20\x50\x3d\x25\x30\x32\x58\x20\x50\x3d\x25\x73\x20\x53\x4e\x3d\x25\x73\x20\x49\x4e\x3d\x25\x73\x20\x46\x3d\x25\x30\x38\x58" "\n"
,IIIIII->IIIIl.lIllllII,IIIIII->IIIIl.IllIIllI,IIIIII->IIIIl.IlIIllIl,IIIIII->
IIIIl.llIlIlII,IIIIII->IIIIl.lIlllllI,IIIIII->IIIIl.IlllIlII,IIIIII->IIIIl.
IIlIIIl?(char*)(&IIIIII->IIIIl+(0x182c+277-0x1940)):"\x6e\x6f\x6e\x65",IIIIII->
IIIIl.IIIlllIl?(char*)(&IIIIII->IIIIl+(0x17a6+823-0x1adc))+IIIIII->IIIIl.IIlIIIl
:"\x6e\x6f\x6e\x65",IIIIII->IIIIl.IlllIlIl?(char*)(&IIIIII->IIIIl+
(0x489+6916-0x1f8c))+IIIIII->IIIIl.IIlIIIl+IIIIII->IIIIl.IIIlllIl:
"\x6e\x6f\x6e\x65",IIIIII->IIIIl.IIIlIIl);list_add_tail(&IIIIII->entry,&lIlIllII
);IllIl+=lIlIlllI;}
if(lllIlI!=IlllllI.lIIlIIII){IlIlI=-EINVAL;}
if(IlIlI>=(0xecb+5702-0x2511)){lIIIl("\x75\x70\x64\x61\x74\x65" "\n");llllIllII(
&lIlIllII);}
if(IlIlI<(0xe13+5384-0x231b)){while(!list_empty(&lIlIllII)){struct IllIlIII*
lIlIIll;lIlIIll=list_entry(lIlIllII.next,struct IllIlIII,entry);list_del(&
lIlIIll->entry);lIlIll(lIlIIll);}}lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
static int llIlllIll(struct IIIlll*lllll,const struct IllIlIlll __user*ioctl){
int IlIlI;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{if(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0xc4f+3498-0x19f9)){IlIlI=-EFAULT;
break;}if(IlIll!=sizeof(*ioctl)){IlIlI=-EINVAL;break;}IIlIIlII();IlIlI=
(0xac6+758-0xdbc);}while((0xa12+4197-0x1a77));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
static int IllllIIII(struct IIIlll*lllll,struct IlIIlIIII __user*ioctl){int 
IlIlI=-ENODEV;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{lIllIl IllIlIIlI;char lIlIl[sizeof(ioctl->lIlIl)+(0x1ae2+1600-0x2121)];struct 
usb_device*IIIlI;if(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0x877+4054-0x184d)){
IlIlI=-EFAULT;break;}if(IlIll!=sizeof(*ioctl)){IlIlI=-EINVAL;break;}if(get_user(
IllIlIIlI,&ioctl->IllIlIIlI)<(0x5b1+1885-0xd0e)){IlIlI=-EFAULT;break;}lIlIl[
sizeof(lIlIl)-(0x25+3016-0xbec)]='\0';if(copy_from_user(lIlIl,&ioctl->lIlIl,
sizeof(ioctl->lIlIl))){IlIlI=-EFAULT;break;}IlIlI=-ENODEV;IIIlI=IllIllII(lIlIl);
if(IIIlI){usb_lock_device(IIIlI);
#if KERNEL_LT_EQ((0x1872+2999-0x2427),(0x77+9221-0x2476),(0x1098+1731-0x1746))
down_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
if(IlllIIlI(IIIlI)){IlIlI=IIIIIlII(IIIlI);}else{lIIIl(
"\x64\x65\x76\x69\x63\x65\x20\x25\x73\x20\x6e\x6f\x74\x20\x73\x68\x61\x72\x65\x64" "\n"
,lIlIl);}
#if KERNEL_LT_EQ((0x1086+1740-0x1750),(0x1225+1273-0x1718),(0x78+5230-0x14d1))
up_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
usb_unlock_device(IIIlI);usb_put_dev(IIIlI);}else{lIIIl(
"\x64\x65\x76\x69\x63\x65\x20\x25\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64" "\n"
,lIlIl);}}while((0xdd3+1001-0x11bc));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
static int lllllllII(struct IIIlll*lllll,const struct IlIIIIIlI __user*ioctl){
int IlIlI=-ENODEV;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{char lIlIl[sizeof(ioctl->lIlIl)+(0x135b+3918-0x22a8)];lIllIl IlIIIIlI;struct 
usb_device*IIIlI;if(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0x4bc+7518-0x221a)){
IlIlI=-EFAULT;break;}if(IlIll!=sizeof(*ioctl)){IlIlI=-EINVAL;break;}if(get_user(
IlIIIIlI,&ioctl->IlIIIIlI)<(0xfc4+4058-0x1f9e)){IlIlI=-EFAULT;break;}lIlIl[
sizeof(lIlIl)-(0x1423+3872-0x2342)]='\0';if(copy_from_user(lIlIl,&ioctl->lIlIl,
sizeof(ioctl->lIlIl))){IlIlI=-EFAULT;break;}IlIlI=-ENODEV;IIIlI=IllIllII(lIlIl);
if(IIIlI){usb_lock_device(IIIlI);
#if KERNEL_LT_EQ((0xbd2+5535-0x216f),(0x1702+1323-0x1c27),(0x9f5+4175-0x1a2f))
down_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
lllIllIl(IIIlI,IlIIIIlI);IlIlI=(0x358+3906-0x129a);
#if KERNEL_LT_EQ((0x2af+4423-0x13f4),(0x190+2607-0xbb9),(0x960+7485-0x2688))
up_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
usb_unlock_device(IIIlI);usb_put_dev(IIIlI);}else{lIIIl(
"\x64\x65\x76\x69\x63\x65\x20\x25\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64" "\n"
,lIlIl);}}while((0xf30+3485-0x1ccd));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
static int IlllIlIll(struct IIIlll*lllll,const struct IllIIlIIl __user*ioctl){
int IlIlI=-ENODEV;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{char lIlIl[sizeof(ioctl->lIlIl)+(0x106+6267-0x1980)];struct usb_device*IIIlI;if
(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0x7d3+1069-0xc00)){IlIlI=-EFAULT;break;
}if(IlIll!=sizeof(*ioctl)){IlIlI=-EINVAL;break;}lIlIl[sizeof(lIlIl)-
(0x2c7+8822-0x253c)]='\0';if(copy_from_user(lIlIl,&ioctl->lIlIl,sizeof(ioctl->
lIlIl))){IlIlI=-EFAULT;break;}IlIlI=-ENODEV;IIIlI=IllIllII(lIlIl);if(IIIlI){
usb_lock_device(IIIlI);
#if KERNEL_LT_EQ((0x1032+3393-0x1d71),(0x2c2+557-0x4e9),(0x7ed+2227-0x108b))
down_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
if(IlllIIlI(IIIlI)){IlIlI=IIIIIlII(IIIlI);}else{lllIllIl(IIIlI,(0x4d+1513-0x635)
);IlIlI=(0x81+6694-0x1aa7);}
#if KERNEL_LT_EQ((0x3ed+5211-0x1846),(0x2c7+1030-0x6c7),(0x159c+1972-0x1d3b))
up_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
usb_unlock_device(IIIlI);usb_put_dev(IIIlI);}else{lIIIl(
"\x64\x65\x76\x69\x63\x65\x20\x25\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64" "\n"
,lIlIl);}}while((0x135c+2527-0x1d3b));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
static int IIIIlIIIl(struct IIIlll*lllll,const struct lllIllIlI __user*ioctl){
int IlIlI=-ENODEV;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{char lIlIl[sizeof(ioctl->lIlIl)+(0x11a8+209-0x1278)];struct usb_device*IIIlI;if
(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0x1513+2144-0x1d73)){IlIlI=-EFAULT;
break;}if(IlIll<sizeof(*ioctl)){IlIlI=-EINVAL;break;}lIlIl[sizeof(lIlIl)-
(0xecc+5816-0x2583)]='\0';if(copy_from_user(lIlIl,&ioctl->lIlIl,sizeof(ioctl->
lIlIl))){IlIlI=-EFAULT;break;}IlIlI=-ENODEV;IIIlI=IllIllII(lIlIl);if(IIIlI){
usb_lock_device(IIIlI);
#if KERNEL_LT_EQ((0xdf5+5681-0x2424),(0x17a5+2914-0x2301),(0x6c5+558-0x8de))
down_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
IlIlI=-ENOENT;if(IIIlI->actconfig){int i;for(i=(0xd83+4536-0x1f3b);i<IIIlI->
descriptor.bNumConfigurations;i++){struct usb_config_descriptor*config=(struct 
usb_config_descriptor*)IIIlI->rawdescriptors[i];if(config->bConfigurationValue==
IIIlI->actconfig->desc.bConfigurationValue){
if(copy_to_user((void*)(ioctl+(0x1b43+2652-0x259e)),(void*)config,min(IlIll-
sizeof(*ioctl),(size_t)le16_to_cpu(config->wTotalLength)))){IlIlI=-EFAULT;}else{
IlIlI=(0x6a3+7498-0x23ed);}break;}}}
#if KERNEL_LT_EQ((0x343+46-0x36f),(0x53c+7043-0x20b9),(0x14fa+1914-0x1c5f))
up_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
usb_unlock_device(IIIlI);usb_put_dev(IIIlI);}else{lIIIl(
"\x64\x65\x76\x69\x63\x65\x20\x25\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64" "\n"
,lIlIl);}}while((0xd64+4234-0x1dee));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
static int IlIllIIIl(struct IIIlll*lllll,const struct lIIIIlIll __user*ioctl){
int IlIlI=-ENODEV;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{char lIlIl[sizeof(ioctl->lIlIl)+(0x644+4162-0x1685)];struct usb_device*IIIlI;if
(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0x14a4+1150-0x1922)){IlIlI=-EFAULT;
break;}if(IlIll<sizeof(*ioctl)){IlIlI=-EINVAL;break;}lIlIl[sizeof(lIlIl)-
(0xfeb+5795-0x268d)]='\0';if(copy_from_user(lIlIl,&ioctl->lIlIl,sizeof(ioctl->
lIlIl))){IlIlI=-EFAULT;break;}IlIlI=-ENODEV;IIIlI=IllIllII(lIlIl);if(IIIlI){
const char*llIlIlIlI,*llIIllII,*IlllIIIl;size_t IIlIIl;usb_lock_device(IIIlI);
#if KERNEL_LT_EQ((0x1504+2670-0x1f70),(0xeda+2457-0x186d),(0x762+2937-0x12c6))
down_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
do
{IlIlI=IIlIIIll(IIIlI,&llIlIlIlI,&llIIllII,&IlllIIIl);if(IlIlI<
(0xff8+1314-0x151a)){
break;}IIlIIl=strlen(IlllIIIl)+(0x1574+1764-0x1c57);if(IIlIIl>(IlIll-sizeof(*
ioctl))){
IlIlI=-EMSGSIZE;break;}if(copy_to_user((void*)(ioctl+(0xb89+1027-0xf8b)),(void*)
IlllIIIl,IIlIIl)){IlIlI=-EFAULT;break;}}while((0xda9+4537-0x1f62));
#if KERNEL_LT_EQ((0xc02+6761-0x2669),(0x158+1088-0x592),(0xbf4+4932-0x1f23))
up_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
usb_unlock_device(IIIlI);usb_put_dev(IIIlI);}else{lIIIl(
"\x64\x65\x76\x69\x63\x65\x20\x25\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64" "\n"
,lIlIl);}}while((0x136a+660-0x15fe));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
#if (0xc40+2817-0x1741)
static int lllIlIIIl(struct IIIlll*lllll,const struct lIllIIllI __user*ioctl){
int IlIlI=-ENODEV;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{char lIlIl[sizeof(ioctl->lIlIl)+(0x122d+111-0x129b)];struct usb_device*IIIlI;
lIllIl speed;if(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0xaf0+738-0xdd2)){IlIlI=
-EFAULT;break;}if(IlIll<sizeof(*ioctl)){IlIlI=-EINVAL;break;}lIlIl[sizeof(lIlIl)
-(0x165+7460-0x1e88)]='\0';if(copy_from_user(lIlIl,&ioctl->lIlIl,sizeof(ioctl->
lIlIl))){IlIlI=-EFAULT;break;}IlIlI=-ENODEV;IIIlI=IllIllII(lIlIl);if(IIIlI){
const char*llIlIlIlI,*llIIllII,*IlllIIIl;usb_lock_device(IIIlI);
#if KERNEL_LT_EQ((0x2005+337-0x2154),(0x791+6885-0x2270),(0x879+1287-0xd6b))
down_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
do
{IlIlI=IIlIIIll(IIIlI,&llIlIlIlI,&llIIllII,&IlllIIIl);if(IlIlI<
(0x64+6801-0x1af5)){
break;}if(put_user(le16_to_cpu(IIIlI->descriptor.idVendor),&ioctl->lIllllII)<
(0x8a3+5754-0x1f1d)){IlIlI=-EFAULT;break;}if(put_user(le16_to_cpu(IIIlI->
descriptor.idProduct),&ioctl->IllIIllI)<(0x102+5579-0x16cd)){IlIlI=-EFAULT;break
;}if(put_user(le16_to_cpu(IIIlI->descriptor.bcdDevice),&ioctl->IlIIllIl)<
(0x222a+914-0x25bc)){IlIlI=-EFAULT;break;}if(put_user(le16_to_cpu(IIIlI->
descriptor.IIllIllI),&ioctl->IIllIllI)<(0x384+6326-0x1c3a)){IlIlI=-EFAULT;break;
}if(put_user(IIIlI->descriptor.bDeviceClass,&ioctl->llIlIlII)<
(0xf23+4792-0x21db)){IlIlI=-EFAULT;break;}if(put_user(IIIlI->descriptor.
bDeviceSubClass,&ioctl->lIlllllI)<(0x410+3912-0x1358)){IlIlI=-EFAULT;break;}if(
put_user(IIIlI->descriptor.bDeviceProtocol,&ioctl->IlllIlII)<(0x4f5+8449-0x25f6)
){IlIlI=-EFAULT;break;}switch(IIIlI->speed){case USB_SPEED_LOW:speed=IIIllIIIl;
break;case USB_SPEED_FULL:speed=lIIIIIlII;break;case USB_SPEED_HIGH:speed=
llIlIIIll;break;case USB_SPEED_SUPER:speed=IIllIlIlI;break;default:speed=
lIllllIll;break;}if(put_user(speed,&ioctl->llllIllll)<(0x9c4+1279-0xec3)){IlIlI=
-EFAULT;break;}if(copy_to_user((void*)&ioctl->lIIlIlI,(void*)IlllIIIl,strlen(
IlllIIIl)+(0xfb1+3235-0x1c53))){IlIlI=-EFAULT;break;}if(copy_to_user((void*)&
ioctl->serial,(void*)llIIllII,strlen(llIIllII)+(0x8a5+6618-0x227e))){IlIlI=-
EFAULT;break;}if(copy_to_user((void*)&ioctl->description,(void*),strlen()+
(0xb97+5147-0x1fb1))){IlIlI=-EFAULT;break;}}while((0x172f+495-0x191e));
#if KERNEL_LT_EQ((0x737+633-0x9ae),(0x15d4+404-0x1762),(0x9db+3952-0x1936))
up_write(&IIIlI->dev.bus->subsys.rwsem);
#endif
usb_unlock_device(IIIlI);usb_put_dev(IIIlI);}else{lIIIl(
"\x64\x65\x76\x69\x63\x65\x20\x25\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64" "\n"
,lIlIl);}}while((0x1527+4108-0x2533));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
#endif
static int lllIIlIII(struct IIIlll*lllll,const char __user*IllIl){int IlIlI=
(0x1197+4558-0x2365);const char __user*lIIIllII;struct list_head IlIlIIlI;struct
 lIIllllII IlllllI;lllII lllIlI;lIIIl("\x2b\x2b" "\n");INIT_LIST_HEAD(&IlIlIIlI)
;if(copy_from_user(&IlllllI,IllIl,sizeof(IlllllI))){return-EFAULT;}lIIIllII=
IllIl+IlllllI.lIIlII.IIlllIl;if(IllIl+sizeof(IlllllI)>lIIIllII){return-EINVAL;}
IllIl+=sizeof(IlllllI);lIIIl("\x63\x6f\x75\x6e\x74\x3d\x25\x64" "\n",IlllllI.
lIIlIIII);for(lllIlI=(0x740+5806-0x1dee);lllIlI<IlllllI.lIIlIIII;lllIlI++){
size_t IlllIlll;size_t IlIlIIIl;struct IlIlIlIl lllIlII;struct IllIIIll*IIIIII;
if(IllIl+sizeof(lllIlII)>lIIIllII){IlIlI=-EINVAL;break;}if(copy_from_user(&
lllIlII,IllIl,sizeof(lllIlII))){IlIlI=-EFAULT;break;}IlIlIIIl=sizeof(struct 
IlIlIlIl);IlllIlll=sizeof(struct IllIIIll);if(IllIl+IlIlIIIl>lIIIllII){IlIlI=-
EINVAL;break;}IIIIII=IIIllII(IlllIlll,GFP_KERNEL);if(IIIIII==NULL){IlIlI=-ENOMEM
;break;}if(copy_from_user(&IIIIII->lllIlII,IllIl,IlIlIIIl)){lIlIll(IIIIII);IlIlI
=-EFAULT;break;}lIIIl(
"\x56\x3d\x25\x30\x34\x58\x20\x50\x3d\x25\x30\x34\x58\x20\x51\x3d\x30\x78\x25\x30\x38\x58" "\n"
,IIIIII->lllIlII.lIllllII,IIIIII->lllIlII.IllIIllI,IIIIII->lllIlII.lIIIlIlll);
list_add_tail(&IIIIII->entry,&IlIlIIlI);IllIl+=IlIlIIIl;}
if(lllIlI!=IlllllI.lIIlIIII){IlIlI=-EINVAL;}
if(IlIlI>=(0x11f2+8-0x11fa)){lIIIl("\x75\x70\x64\x61\x74\x65" "\n");lllllIllI(&
IlIlIIlI);}
if(IlIlI<(0x94d+828-0xc89)){while(!list_empty(&IlIlIIlI)){struct IllIIIll*
lIlIIll;lIlIIll=list_entry(IlIlIIlI.next,struct IllIIIll,entry);list_del(&
lIlIIll->entry);lIlIll(lIlIIll);}}lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
static int lIIIIIIll(struct IIIlll*lllll,const struct IIlIllIIl __user*ioctl){
int IlIlI;lllII IlIll;lIIIl("\x2b\x2b" "\n");do
{if(get_user(IlIll,&ioctl->lIIlII.IIlllIl)<(0x207+6844-0x1cc3)){IlIlI=-EFAULT;
break;}if(IlIll!=sizeof(*ioctl)){IlIlI=-EINVAL;break;}llIIlllIl();IlIlI=
(0x36a+154-0x404);}while((0xdbd+6421-0x26d2));lIIIl(
"\x2d\x2d\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n",IlIlI);return IlIlI;}
#endif 

